home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
libs
/
pdcurs21
/
portable
/
curs_set.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-06-18
|
3KB
|
110 lines
#define CURSES_LIBRARY 1
#include <curses.h>
#ifdef UNIX
#include <defs.h>
#include <term.h>
#endif
#undef curs_set
#ifdef PDCDEBUG
char *rcsid_curs_set = "$Header: C:\CURSES\portable\RCS\curs_set.c 2.1 1993/06/18 20:19:11 MH Rel MH $";
#endif
/*man-start*********************************************************************
curs_set() - set visibility of cursor.
X/Open Description:
This routine is used to set the visibility of the cursor. The cursor
can be made invisible, normal or highly visible by setting the
parameter to 0, 1 or 2 respectively. If an invalid value is passed
the function will set the cursor to "normal".
X/Open Return Value:
curs_set returns the previous visibility value.
X/Open Errors:
No errors are defined for this function.
Portability:
PDCurses int curs_set( int visibility );
SYS V Curses int curs_set( int visibility );
**man-end**********************************************************************/
int curs_set(int visibility)
{
#ifdef OS2
VIOCURSORINFO pvioCursorInfo;
#endif
int start,end,hidden=0;
static int old_vis=1;
int ret_vis;
#ifdef PDCDEBUG
if (trace_on) PDC_debug("curs_set() - called: visibility=%d\n",visibility);
#endif
ret_vis = old_vis;
old_vis = visibility;
#ifdef UNIX
switch(visibility)
{
case 0: /* invisible */
if (cursor_invisible != NULL)
putp(cursor_invisible);
break;
case 2: /* highly visible */
if (cursor_visible != NULL)
putp(cursor_visible);
break;
default: /* normal visibility */
if (cursor_visible != NULL)
putp(cursor_visible);
break;
}
return(OK);
#else
switch(visibility)
{
case 0: /* invisible */
#ifdef OS2
start = _cursvar.font / 4;
end = _cursvar.font;
#else
start = 32;
end = 33;
#endif
hidden = (-1);
break;
case 2: /* highly visible */
start = 2; /* almost full-height block */
end = _cursvar.font-1;
break;
default: /* normal visibility */
start = _cursvar.font - 4;
end = _cursvar.font-1;
break;
}
#ifdef OS2
pvioCursorInfo.yStart = (USHORT)start;
pvioCursorInfo.cEnd = (USHORT)end;
pvioCursorInfo.cx = (USHORT)1;
pvioCursorInfo.attr = hidden;
VioSetCurType((PVIOCURSORINFO)&pvioCursorInfo,0);
#endif
#ifdef DOS
regs.h.ah = 0x01;
regs.h.al = (unsigned char)_cursvar.scrnmode; /* if not set, some BIOSes hang */
regs.h.ch = (unsigned char)start;
regs.h.cl = (unsigned char)end;
int86(0x10, ®s, ®s);
#endif
return( ret_vis );
#endif
}